package appapi.service.mango;

import appapi.Request.record.ScenePageReq;
import appapi.Request.record.SceneReq;
import appapi.Vo.AddSelfcheckRecVo;
import appapi.Vo.SceneDeviceVo;
import appapi.Vo.ScenePageVo;
import appapi.Vo.brider.SceneDetailVo;
import appapi.Vo.brider.SceneVo;
import appapi.dto.bridge.SceneCheckDto;
import appapi.entity.Zhongjiao.SceneDto;
import appapi.entity.Zhongjiao.SceneEquipmentDto;
import appapi.entity.Zhongjiao.SectionDto;
import appapi.entity.Zhongjiao.SelfcheckDto;
import appapi.entity.basic.UserInfo;
import appapi.entity.bridge.SceneDeviceEntity;
import appapi.entity.bridge.SceneEntity;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * @author dhq
 * @date 2023/9/11  12:26
 * @version 1.0
 */
public interface SceneService  extends IService<SceneEntity> {


    int deleteByPrimaryKey(Long sceneId);

    int insert(SceneEntity record);

    int insertSelective(SceneEntity record);

    SceneEntity selectByPrimaryKey(Long sceneId);

    int updateByPrimaryKeySelective(SceneEntity record);

    int updateByPrimaryKey(SceneEntity record);

    /**
     * 添加场景
     * @param vo
     * @return
     */
    int insertScene(UserInfo userInfo, SceneVo vo);

    /**
     * 编辑场景
     * @param dto
     * @return
     */
     int UpdateScene(UserInfo userInfo,SceneVo dto);

    /**
     * 获取场景详情
     * @param sceneId
     * @return
     */
     SceneDeviceVo getSceneDeviceDetail(Long sceneId);
    /**
     * 场景-分页列表
     * @param sceneReq
     * @return
     */
   List<ScenePageVo> getSecList(SceneReq sceneReq);

    /**
     * 场景-分页查询
     * @param req
     * @return
     */
    PageInfo<ScenePageVo> GetSceneListByPage(ScenePageReq req) ;

    List<ScenePageVo> GetSceneList(SceneReq req) ;

   SceneDetailVo getSceneDetail( Long sceneId);

    /**
     * 删除场景信息，
     * @param secId
     * @return
     */
   Integer deleteSceneById(Long secId);


    /**
     * 获取场景设备列表
     * @param sceneId
     * @return
     */
    List<SceneDeviceEntity> getSceneDataDeviceList(Long sceneId);

    /**
     * 获取场景列表
     * @param orgaId
     * @return
     */
    List<SceneCheckDto> getSceneListByOrgaId(Long orgaId);


}
